<?php

class modelo__tabela {

    protected $rotulo_colunas = array();
    protected $montou_rotulos = false;
    protected $cor1 = 'bgcolor="#EBEBEB"';
    protected $cor2 = 'bgcolor="#F8F8F8"';
    protected $qtde_linhas_adicionadas = 0;
    protected $vet_indice_colunas_nowrap = array();

    public function adicionar_coluna($coluna) {
	array_push($this->rotulo_colunas, $coluna);
    }

    /**
     *
     * @param $colunas array
     *
     */
    public function adicionar_colunas($colunas) {
	foreach ($colunas as $v) {
	    $this->adicionar_coluna($v);
            
	}
        if ($this->montou_rotulos == false) {
	    $this->monta_rotulos();
	}
    }

    protected function monta_rotulos() {
	echo '<table border="0" cellspacing="2" cellpadding="4"><tr>';
	foreach ($this->rotulo_colunas as $v) {
	    echo '<td nowrap="nowrap" valign="top" bgcolor="#666666"><span class="style3">' . $v . '</span></td>';
	}
	echo '</tr>';
	$this->montou_rotulos = true;
    }

    public function adiciona_linha($valores, $bgcolor_linha = NULL) {

	// a quantidade de ítens da linha deve ser a mesma de rótulos:
	if (sizeof($valores) != sizeof($this->rotulo_colunas)) {
	    throw new Exception('a qtde de linhas da tabela devem ser a mesma qtde de rótulos');
	}
	echo '<tr>';
	$i=0;
	foreach ($valores as $v) {
	    if($bgcolor_linha != NULL) {
		$cor = $bgcolor_linha;
	    }else if ($this->qtde_linhas_adicionadas % 2 != 0) {
		$cor = $this->cor1;
	    } else {
		$cor = $this->cor2;
	    }
	    echo '<td valign="top" '.$cor;
	    if(in_array($i, $this->vet_indice_colunas_nowrap)) {
		echo ' nowrap="nowrap" ';
	    }
	    echo '>';
	    echo $v;
	    echo '</td>';
	    
	    $i++;
	}
	echo '</tr>';

	
	
	$this->qtde_linhas_adicionadas++;
    }

    public function indice_colunas_nowrap($colunas) {
	$this->vet_indice_colunas_nowrap = $colunas;
    }

    public function fecha_tabela() {
	echo '</table>';
    }

}
?>
